const router = require('express').Router();
const fs = require('fs');



//  /api/v1/pets/--查询所有
router.get('/', (req, res) => {
    if (fs.existsSync('./db/pets.json')) {
        const pets = JSON.parse(fs.readFileSync('./db/pets.json').toString());
        res.json(pets);
    } else {
        fs.writeFileSync('./db/pets.json', "[]");
        res.json([]);
    }
});



//  /api/v1/pets/:name--根据名字查询信息
router.get('/name', (req, res) => {
    // console.log(req.query.name)
    console.log(req.query)
    const pets = JSON.parse(fs.readFileSync('./db/pets.json').toString());
    /*   find() 方法返回通过测试（ 函数内判断） 的数组的第一个元素的值。
    如果没有符合条件的元素返回 undefined
    find() 对于空数组， 函数是不会执行的。
    find() 并没有改变数组的原始值。 */
    const pet = pets.find(item => item.name == req.query.name);
    res.json({
        code: 1,
        info: pet ? pet : {},
    });
});


//  /api/v1/pets/:id--查询一条信息
router.get('/:id', (req, res) => {
    const pets = JSON.parse(fs.readFileSync('./db/pets.json').toString());
    const pet = pets.find(item => item.id == req.params.id);
    res.json({
        code: 1,
        info: pet ? pet : {},
    });
});


//  /api/v1/pets/--存储数据
router.post('/', (req, res) => {
    const pets = JSON.parse(fs.readFileSync('./db/pets.json').toString());
    pets.push({
        id: Date.now(),
        ...req.body
    });
    fs.writeFileSync('./db/pets.json', JSON.stringify(pets));
    res.json({
        code: 1,
        msg: '数据存储成功'
    });
});
//  /api/v1/pets/:id--修改信息
router.put('/:id', (req, res) => {
    const pets = JSON.parse(fs.readFileSync('./db/pets.json').toString());
    const index = pets.findIndex(item => item.id == req.params.id);
    pets[index] = {
        id: req.params.id,
        ...req.body
    };
    fs.writeFileSync('./db/pets.json', JSON.stringify(pets));
    res.json({
        code: 1,
        msg: '数据修改成功'
    });
});

//  /api/v1/pets/:id--删除信息
router.delete('/:id', (req, res) => {
    const pets = JSON.parse(fs.readFileSync('./db/pets.json').toString());
    const index = pets.findIndex(item => item.id == req.params.id);
    pets.splice(index, 1);
    fs.writeFileSync('./db/pets.json', JSON.stringify(pets));
    res.json({
        code: 1,
        msg: '信息删除成功'
    });
});

module.exports = router;